#include <iostream>
#include <cstring>
using namespace std;

/*
	string常用方法	
	assign
	at
	back
	c_str
	clear
	compare
	copy
	empty
	erase
	find
	front
	insert
	length
	pop_back
	push_back
	replace
	size
	substr
	swap
*/

int main(int argc,char **argv)
{
	//定义string对象
	char buf[20]="Chinagec";
	string str1="abchelloyue";
	string str2="world";
	string str3="tthello";
	string str4="ullo";
	string str5="zhangsan@123456@yueqian";
	
	//追加字符串
	//str1.append(str2); //把str2追加到str1的后面
	//str1.append(str2,3,2); //把str2从下标3开始，连续两个字符追加到str1的后面
	//str1.append(buf+5);
	//str1.append(1,'\n');  
	//cout<<str1<<endl;
	
	//赋值--》清空覆盖掉原来的内容
	//str1.assign("gec");
	//str1.assign(str2,1,2); //str2下标1开始2个字符，赋值给str1
	//cout<<str1<<endl;
	
	//获取下标对应的字符
	//cout<<"下标2对应的字符: "<<str1.at(2)<<endl;
	//由于at函数的返回值是引用-->依据引用的特点，我可以修改对应的字符
	//char &ret=str1.at(2);  
	//ret='@';
	//cout<<str1<<endl;
	
	//获取末尾字符/首元素
	//cout<<"最末尾字符: "<<str1.back()<<endl;
	//cout<<"首字符: "<<str1.front()<<endl;
	
	//把string对象转换成C语言风格的字符串
	//const char *p=str1.c_str();
	//strcpy(buf,p);
	//cout<<"buf is: "<<buf<<endl;
	
	//清空字符串
	//str1.clear();
	
	//比较字符串-->按照ASCII大小来判断
	//int ret=str1.compare(str3);
	//int ret=str1.compare(3,5,str3,2,5);
	//cout<<"返回值是: "<<ret<<endl;
	
	//拷贝当前对象中的内容到char *中
	//str1.copy(buf,3);
	//cout<<"buf is: "<<buf<<endl;
	
	//判断空的字符串
	//bool ret=str1.empty();
	
	//删除部分字符串
	//str1.erase(3,5); //下标3开始，连续删除5个字符
	//cout<<str1<<endl;
	
	//查找子串，返回子串首次出现的下标位置,没有找到返回-1(string::npos)
	//size_t ret=str1.find(str4);
	// if(ret!=string::npos)
		// cout<<"str4首次出现的位置: "<<ret<<endl;
	// else
		// cout<<"对不起，根本没有str4"<<endl;
	
	//插入字符串
	//str1.insert(3,"great");
	//str1.insert(3,"great",2,2);
	//cout<<str1<<endl;
	
	//求字符串实际长度
	//cout<<"str1实际长度: "<<str1.length()<<endl;
	
	//删除末尾字符
	//str1.pop_back();
	
	//最末尾追加一个字符
	//str1.push_back('@');
	
	//替换字符串：新的字符串无论长短，都会把你指定范围的子串替换掉，不影响其它内容
	//str5.replace(9,6,"456789");  //下标9开始，连续6个字符，用新的字符串替换
	//str5.replace(9,6,"456");
	//str5.replace(9,6,"456878458578454");
	//cout<<"str5 is: "<<str5<<endl;
	
	//截取子串
	//string str6=str5.substr(0,8);
	//cout<<"str6 is: "<<str6<<endl;
	
	//交换两个字符串
	str1.swap(str2);
	cout<<"str1 is: "<<str1<<endl;
	cout<<"str2 is: "<<str2<<endl;
	return 0;	
}